package com.baitai.system.mapper;

import java.util.List;
import com.baitai.system.domain.ProductInfo;
import com.baitai.system.domain.ProductFile;
import com.baitai.system.domain.vo.PrizeProductInfo;
import org.apache.ibatis.annotations.Param;

/**
 * 商品详情Mapper接口
 * 
 * @author xx
 * @date 2024-07-17
 */
public interface ProductInfoMapper 
{
    /**
     * 查询商品详情
     * 
     * @param id 商品详情主键
     * @return 商品详情
     */
    public ProductInfo selectProductInfoById(Long id);

    /**
     * 查询商品详情列表
     * 
     * @param productInfo 商品详情
     * @return 商品详情集合
     */
    public List<ProductInfo> selectProductInfoList(ProductInfo productInfo);
    public List<ProductInfo> appList(ProductInfo productInfo);

    /**
     * 新增商品详情
     * 
     * @param productInfo 商品详情
     * @return 结果
     */
    public int insertProductInfo(ProductInfo productInfo);

    /**
     * 修改商品详情
     * 
     * @param productInfo 商品详情
     * @return 结果
     */
    public int updateProductInfo(ProductInfo productInfo);

    /**
     * 删除商品详情
     * 
     * @param id 商品详情主键
     * @return 结果
     */
    public int deleteProductInfoById(Long id);

    /**
     * 批量删除商品详情
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteProductInfoByIds(Long[] ids);

    /**
     * 批量删除商品图片
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteProductFileByProductIds(Long[] ids);
    
    /**
     * 批量新增商品图片
     * 
     * @param productFileList 商品图片列表
     * @return 结果
     */
    public int batchProductFile(List<ProductFile> productFileList);
    

    /**
     * 通过商品详情主键删除商品图片信息
     * 
     * @param id 商品详情ID
     * @return 结果
     */
    public int deleteProductFileByProductId(Long id);

    List<ProductInfo> prizeDrawProductList(@Param("maxNum") int maxNum);

    List<PrizeProductInfo> selectPrizeDrawRuleProductInfoList(@Param("ruleId")Long ruleId);

    PrizeProductInfo selectThanks();

    void updateProductFile(ProductFile productFile);
}
